The ability of data processing systems to store, retrieve and manipulate data has been well exploited in the fields of text and program processing. Typically, an author uses an interactive display terminal to create a document or file by entering text or data into a data processing system which stores the data in electronic form and displays the text on a display device, such as a cathode ray tube. When the author is satisfied, the text is stored in the form of a file or document in a memory device which may be, for example, a magnetic disk store. In order to change or manipulate the data, the system must be adapted to perform editing functions.
Editor programs are well known in the field of data processing. A file of data, which may hold numerical data, computer programs, or documentation such as text, as well as other information, is created by the user. If it is required to make a change to the file of data, it is necessary to use a program executed on the computer to access and allow the user to effect changes. Thus, editors are known to allow users to work with files and perform such activities as to create files, enter data, manipulate the screen display, make changes to the file, and transfer data between files. Use of editors involves the interactive changing, adding or deleting data from files.
An example of a general text processing editor for use on the Call Management System (CMS) computer environment is the XEDIT program. Details of this program and the functions involved can be found in the XEDIT User's Guide Virtual Machine/Enterprise Systems Architecture, available from International Business Machines Corporation as publication no. SC24-5463. XEDIT is available for use on host computer systems.
A publication describing editors in general, as well as the LEXX editor in particular, is entitled LEXX--A Programmable Structured Editor, by M. F. Cowlishaw, published in the IBM Journal of Research and Development, Volume 31, No. 1, Jan. 1987, pp. 73-80. This paper describes details of aspects and capabilities of various text editors and structured editors. LEXX is a general purpose editor that can edit both documentation and programs while making evident the structure of the data being edited. LEXX is an editor that can be programmed not only to understand and present the structure of data, but also to display those data in a variety of styles and colors in order to best match the data to the user and to the task being performed. The result is a programmable editor that can be customized to suit the data, the task and the needs of the user.
A further development of the LEXX editor that can also be used to create and edit many kinds of data, including programs and documentation, is referred to as the Live Parsing Extensible Editor (LPEX), which runs on workstations. The live parsing capability permits external commands and edit macros attached to the editor to monitor changes made to a document as the user works with and manipulates the document. Details of the LPEX editor can be found in the LPEX User's Guide and Reference Manual, IBM publication no. SC09-2202, available from International Business Machines Corporation.
Text editor applications are continually being improved and made more useful and friendly to the end user. For example, IBM Technical Disclosure Bulletin, Volume 34, No. 7A, Dec. 1991, pp. 20-25, describes a pause review technique for improving the interactivity of direct manipulation in a text editor application. During direct manipulation of a document, a user may be uncertain of the effects of certain changes. This publication describes a technique for providing visual feedback and the effect that the change may have on the document before a direct manipulation is completed. It provides for a conversation-like preview/reject/continue sequence so as to permit the user to actually see what is happening to the document before the changes are finally implemented.
Word processors are application programs for use in personal computer environments and perform similar functions on a document as an editor, including the creating and editing of files. Examples of available word processor applications are WordPerfect.TM. from Corel Corporation, Amipro.TM. from Lotus Development Corporation and PFS WindowWorks.TM. from Softkey International Inc. Typically, user manuals are provided by the respective suppliers or manufacturers of these programs which readily describe the capabilities and functions of the programs.
In general, currently available editors and word processing programs, and in particular the programs referred to above, provide for the functions of making a change to a document or file, such as deleting a word, line or some portion of a file, and providing the capability to recover or "undo" the change that had been originally made in the process of editing the document. Some programs also provide the capability to "redo" a change that was previously undone. It has been found, however, that these capabilities are not sufficient for all editing applications and there is a need for a multi-level, random access undo function, thus providing increased usability. There is a further need for an improved graphical user interface so as to display all changes to a document in their context, and to be able to selectively accept them as desired. Thus, new functions to be implemented in computer programs for editing documents are needed, along with an associated meaningful graphical interface.
Present undo/redo implementations in edit systems provide neither adequate visual feedback of the available undoable changes, nor flexible capabilities to handle these and can be characterized by the following shortcomings or limitations:
the user can only proceed through changes sequentially, from the most recent change backwards, must apply these changes (undo/redo them) while going through the Undo Stack, consequently eliminating from the document edit view the latest, and any other, variant of the affected text; PA1 the user cannot selectively restore part of a global change; PA1 the user cannot see all the text that is going to be restored (e.g., in the case of a global change); PA1 the user cannot see a certain change in the context of the other changes carried out in the course of editing, before undoing it.
This lack of user-friendliness prevents users from using undo/redo functions in complex editing situations where they could be most useful, as the user is virtually operating blindly while doing changes to a document. As a result the user is forced to retype, carefully rescan the document manually while looking for changes, keep and open in the edit system several versions of the document or parts of it for reference, or similar unproductive alternatives, resulting in loss of time and productivity.